from base import *
from sqlalchemy import ForeignKey
from sqlalchemy.orm import relationship, backref
from sqlalchemy import Sequence

class Solicitud(Base):
    """
    Clase que crea la tabla Solicitud
    """
    __tablename__ = 'solicitud'
    id          = Column(Integer, Sequence('solicitud_id_seq'), primary_key=True, unique=True)
    idusuario   = Column(Integer, ForeignKey('usuario.id'))
    idfase      = Column(Integer, ForeignKey('fase.id'))
    descripcion = Column(Text, nullable=False)
    estado      = Column(Text)     
    fase   = relationship("Fase", backref="solicitudes")

    def __init__(self, idusuario, idfase, descripcion, estado):
        """
        Metodo de instancia constructor que inicializa los parametros del objeto solicitud.
        @type self: solicitud.
        @param self: referencia al objeto que llama el metodo en este caso solicitud.
        @type idusuario: Integer
        @param idusuario: campo que almacenara el id del usuario.
        @type idfase: Integer
        @param idfase: campo que almacenara el id de la fase.
        @type descripcion: Text
        @param descripcion: campo que almacenara el motivo de la solicitud
        @type estado: Text
        @param estado: campo que almacenara el estado
        """
        self.idusuario = idusuario
        self.idfase = idfase
        self.descripcion = descripcion
        self.estado = estado
